package cn.itcast.web.controller.company;

import cn.itcast.domain.company.Company;
import cn.itcast.service.company.CompanyService;
import cn.itcast.web.controller.BaseController;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Controller
@RequestMapping("/company")
public class CompanyController extends BaseController {

    @Autowired
    private CompanyService companyService;


    /*
    *   查询所有的企业数据
    * */
    /*@RequestMapping("/findAll")
    public String findAllCompany(){
        List<Company> list = companyService.findAll();
        //将集合存储发哦request域中
        request.setAttribute("list",list);
        return "company/company-list";
    }*/


    /*
            使用PageHelper操作分页查询
     */
    @RequestMapping("/list")
    public String findAllCompany(
            @RequestParam(defaultValue = "1")int page,
            @RequestParam(defaultValue = "10")int size
    ){
        //调用service层方法，将当前页参数以及默认展示的条数传递过去
        PageInfo info = companyService.findAllCompany(page,size);
        request.setAttribute("page",info);
        //返回页面展示
        return "company/company-list";
    }
    /*
    *      新增企业
    *       1、跳转到新增企业填写页面
    * */
    @RequestMapping("toAdd")
    public String addCompany(){
        //跳转到企业数据填写页面
        return "company/company-add";
    }

    /*
    *       添加企业数据或修改企业数据
    *       判断条件id是否为空
    *           1、id为空，为添加
    *           2、id不为空为修改
    * */
    @RequestMapping("/edit")
    public String saveCompany(Company company){
        //判断id是否为空  使用spring提供的StringUtils工具判断是否为null或“” 判断值为true
        if (StringUtils.isEmpty(company.getId())){
            //id为空添加company数据
            //调用server层，将Company数据传递到service层
            companyService.addCompany(company);
        }else {
            //id不为空则执行保存的方法
            //调用service层保存company
            companyService.updateCompany(company);
        }
       //保存或者修改成功都返回查询所有页面
        return "redirect:/company/findAll.do";
    }

    /*
    *   根据id查询到企业的数据回显
    * */
    @RequestMapping("/toUpdate")
    public String findById(String id){
        //调用service层，根据id查询指定的company企业数据回显
        Company company= companyService.findById(id);
        //将查询到的company数据保存到域对象中回显
        request.setAttribute("company",company);
        return "company/company-update";
    }

    /*
    *   根据id删除指定的company
    *   返回查询所有company的页面
    * */
    @RequestMapping("/delete")
    public String delete(String id){
        //调用service层
        companyService.deleteComany(id);
        //转发到查询所有的页面
        return "redirect:/company/findAll.do";
    }

}
